$NG.AllReady(function (page, { useValuesChange, useDataIndexChange, useUpdateRows, useUpdateRow }) {
    const mstform = $NG.getCmpApi("p_form_year_return_plan_m");
    const dgrid = $NG.getCmpApi("p_form_year_return_plan_d");
  
    ////////////////////////////////////////////////////////////--mstform--////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////--mstform--////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////--mstform--////////////////////////////////////////////////////////////
    if (mstform) {
      console.log("mstform存在");
      var phid_pc = mstform.getItem("phid_pc");
      cntMFilter();
      if (page.oType == "add") {
        if (phid_pc) {
          getPtInfoByPhid();
          getIncomePlan();
        }
        mstform.getItem("u_year").setValue({
          value: new Date().getFullYear(),
          label: new Date().getFullYear(),
        });
        mstform.getItem("bill_name").setValue(new Date().getFullYear() + "年度回款计划");
      }
      useValuesChange(({ args }) => {
        cntMFilter();
        getPtInfoByPhid();
        getIncomePlan();
        $NG.updateState((updater) => {
          updater.data.p_form_year_return_plan_m.setProps({
            u_cnt_name: null,
          });
        });
        getCntCount("p_form_year_return_plan_m", "u_cnt_name", () => {
          getCntMInfoByPhid();
        });
      }, "p_form_year_return_plan_m.phid_pc");
      useValuesChange(({ args }) => {
        getIncomePlan();
      }, "p_form_year_return_plan_m.u_year");
  
      useValuesChange(({ args }) => {
        getCntMInfoByPhid();
      }, "p_form_year_return_plan_m.u_cnt_name");
    } else {
      console.log("mstform不存在");
    }
  
    getCntCount("p_form_year_return_plan_m", "u_cnt_name", () => {
      getCntMInfoByPhid();
    });
    ////////////////////////////////////////////////////////////--dgrid--////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////--dgrid--////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////--dgrid--////////////////////////////////////////////////////////////
    if (dgrid) {
      console.log("dgrid存在");
      var dtoolbar = $NG.getCmpApi("toolbar_p_form_year_return_plan_d");
      dtoolbar.hideButton("addrow");
      dtoolbar.hideButton("deleterow");
      dtoolbar.hideButton("attachment");
    } else {
      console.log("dgrid不存在");
    }
    useUpdateRows(({ args }) => {
      const table_month_key = ["u_january", "u_february", "u_march", "u_april", "u_may", "u_june", "u_july", "u_august", "u_september", "u_october", "u_november", "u_december"];
      var sumAmt = 0;
      const rows = args[0];
      rows.forEach((items) => {
        items.u_year_total = table_month_key.reduce((value, key) => {
          value += Number(items[key]) || 0;
          return value;
        }, 0);
        if (items.u_year_total) {
          sumAmt += parseFloat(items.u_year_total);
        }
        //汇总赋值
        mstform.getItem("u_plan_amt").setValue(sumAmt);
      });
      dgrid.refreshView();
    }, "p_form_year_return_plan_d");
    ////////////////////////////////////////////////////////////--getIncomePlan--////////////////////////////////////////////////////////////
    async function getIncomePlan() {
      try {
        await dgrid.clearRows();
        const res = await $NG.execServer("getRepaymentPlan", { phid_pc: mstform.getItem("phid_pc").getValue(), u_year: mstform.getItem("u_year").getValue() });
        if (res.count > 0) {
          const datas = JSON.parse(res.data);
          console.log(datas);
          const gridArr = datas.map((items) => {
            const { amt_1, amt_2, amt_3, amt_4, amt_5, amt_6, amt_7, amt_8, amt_9, amt_10, amt_11, amt_12, amt_sum, amt_next1, amt_next2 } = items.extendObjects;
            return {
              u_january: amt_1,
              u_february: amt_2,
              u_march: amt_3,
              u_april: amt_4,
              u_may: amt_5,
              u_june: amt_6,
              u_july: amt_7,
              u_august: amt_8,
              u_september: amt_9,
              u_october: amt_10,
              u_november: amt_11,
              u_december: amt_12,
              u_year_total: amt_sum,
              u_nextyear_plan: amt_next1,
              u_after_plan: amt_next2,
            };
          });
          dgrid.addRows(gridArr);
          dgrid.refreshView();
        } else {
          console.log("功能扩展没有数据");
        }
      } catch (error) {
        console.error("功能扩展报错:", error);
      }
    }
    /**
     *
     * 功能扩展区
     *
     */
    //获取项目信息
    function getPtInfoByPhid() {
      var phid_pc = mstform.getItem("phid_pc").getValue();
      var u_year = mstform.getItem("u_year").getValue();
      if (phid_pc) {
        $NG.execServer("getPtInfoByPhid", { phid: phid_pc }, function (res) {
          if (res.count == 0) return;
          const datas = JSON.parse(res.data)[0].extendObjects;
          console.log(datas);
          $NG.updateState((updater) => {
            updater.data.p_form_year_return_plan_m.setProps({
              u_pc_no: datas.pc_no,
              //事业部
              phid_org: { value: datas.division_phid, label: datas.division_name },
              //区域中心
              u_regional_center: { value: datas.regional_center_phid, label: datas.regional_center_name },
              //产品线
              u_cpx: { value: datas.midwife_phid, label: datas.midwife_name },
              //项目经理
              phid_emp: { value: datas.project_manager_phid, label: datas.project_manager_name },
              // ,pm.phid project_manager_phid ,pm.bill_name project_manager_name
            });
          });
        });
        // $NG.execServer("getRepaymentPlanByYYYY", { phid_pc: phid_pc, u_year: u_year }, function (res) {
        //   if (res.count > 0) {
        //     var data = JSON.parse(res.data)[0].extendObjects; //单返回值
        //     mstform.getItem("u_plan_amt").setValue(data.amt_sum);
        //   } else {
        //     console.log("功能扩展没有数据");
        //   }
        // });
      }
    }
    //获取合同信息
    async function getCntMInfoByPhid() {
      try {
        const res1 = await $NG.execServer("getCntMInfoByPhid", { phid: mstform.getItem("u_cnt_name").getValue() });
        if (res1.count == 0) return;
        const datas = JSON.parse(res1.data)[0].extendObjects;
        console.log(datas);
        mstform.getItem("phid_customer_ent").setValue({
          value: datas.customer_id,
          label: datas.customer_name,
        });
        mstform.getItem("u_cnt_no").setValue(datas.pcm_no);
        mstform.getItem("u_htxe").setValue(datas.cnt_sum_vat_fc);
  
        const res2 = await $NG.execServer("getPcRepaymentSum", { phid_cnt: mstform.getItem("u_cnt_name").getValue() });
        if (res2.count > 0) {
          var data = JSON.parse(res2.data)[0].extendObjects; //单返回值
          mstform.getItem("u_ljhk").setValue(data.app_amt_vat_fc);
        } else {
          console.log("功能扩展没有数据");
        }
        mstform.getItem("u_qfje").setValue(datas.cnt_sum_vat_fc - data.app_amt_vat_fc);
      } catch (error) {
        console.error("功能扩展报错:", error);
      }
    }
  
    /**
     * 过滤区
     * */
    //合同根据项目ID过滤
    function cntMFilter() {
      $NG.updateUI((updater, state) => {
        console.log("过滤参数检查", updater);
        updater.fieldSetForm.p_form_year_return_plan_m.PCFieldSetPanelGroup1.u_cnt_name.setProps({
          onBeforeOpen: async () => {
            var phid_pc = $NG.getCmpApi("p_form_year_return_plan_m").getItem("phid_pc").getValue();
            if (!phid_pc) {
              $NG.alert("请先选择项目");
              return false;
            } else {
              return true;
            }
          },
          ...(!!$NG.getCmpApi("p_form_year_return_plan_m").getItem("phid_pc").getValue() && {
            clientSqlFilter: {
              bill_type: 1, //合同类型
              phid_pc: $NG.getCmpApi("p_form_year_return_plan_m").getItem("phid_pc").getValue(),
            },
          }),
        });
      });
    }
    //获取合同数量
    function getCntCount(table, key, fun) {
      if (!$NG.getCmpApi(table).getItem("phid_pc").getValue()) return;
      $NG.execServer("getCntCount", { type: 1, phid_pc: $NG.getCmpApi(table).getItem("phid_pc").getValue() }, (res) => {
        console.log(res, "count");
        switch (res.count) {
          case 0:
            return;
          case 1:
            const datas = JSON.parse(res.data)[0].extendObjects;
            const temp_map = {};
            temp_map[key] = datas.phid;
            temp_map[`${key}_EXName`] = datas.bill_name;
            $NG.updateState((updater) => {
              updater.data[table].setProps({
                ...temp_map,
              });
              setTimeout(() => {
                if (fun) {
                  fun();
                }
              }, 200);
            });
        }
      });
    }
  });
  